package com.wlyy.bcwlw.sys;

import java.io.Serializable;
import java.util.List;

import org.apache.commons.lang.StringUtils;

import com.wlyy.bcwlw.sys.menu.entity.MenuDTO;
import com.wlyy.bcwlw.sys.role.entity.RoleDTO;
import com.wlyy.bcwlw.sys.user.entity.UserProfile;


/**
 * 
 * @ClassName. SecurityContext
 * @Description. 安全机制上下文
 * @author zhangyang
 * @date 2015年8月31日 下午2:39:16
 * @version V1.0
 */
public class SecurityContext implements Serializable{


	private static final long serialVersionUID = 1L;

    private UserProfile userProfile = UserProfile.ANONYMOUS;
    /** 用户对应的应用上下文，由于动态数据源的关系，不同用户对应的应用上下文不同，这里存放一下，程序中可能会涉及到 */
    private String contextPathWithHost;
    
    public UserProfile getUserProfile(){
    		//只有应用正常启动才可以正常使用
    	return this.userProfile;
    }
    
    /**
     * 
    * @Title. setUserProfile
    * @Description. 设置当前用户
    * @param userProfile void
    * @exception.
     */
	public void setUserProfile(UserProfile userProfile) {
		this.userProfile = userProfile;
	}
	
	/**
	 * 
	* @Title. getUserRoles
	* @Description. 得到用户角色
	* @return List<RoleDTO>
	* @exception.
	 */
	public List<RoleDTO> getUserRoles() {
		return userProfile.getRoles();
	}
	
	/**
	 * 
	* @Title. getUserMenus
	* @Description. 用户菜单
	* @return List<MenuDTO>
	* @exception.
	 */
	public List<MenuDTO> getUserMenus(){
		return userProfile.getMenus();
	}
	
	
	
	/**
	 * 
	* @Title. getContextPathWithHost
	* @Description. 用户对应的应用上下文
	* @return String  上下文格式为http://xxx/openoa/，最后一定有/
	* @exception.
	 */
	public String getContextPathWithHost() {
		if(StringUtils.isNotEmpty(contextPathWithHost) && !contextPathWithHost.endsWith("/")) {
			return contextPathWithHost + "/";
		}
		return contextPathWithHost;
	}
	
	/**
	 * 
	* @Title. setContextPathWithHost
	* @Description. 用户对应的应用上下文，由于动态数据源的关系，不同用户对应的应用上下文不同，这里存放一下，程序中可能会涉及到
	* @param contextPathWithHost void  contextPathWithHost 这里的上下文格式为http://xxx/openoa
	* @exception.
	 */
	public void setContextPathWithHost(String contextPathWithHost) {
		this.contextPathWithHost = contextPathWithHost;
	}

}
